Sean Trott and Alex Liebscher

Introduction

We have several dependent variables which we would like to model as accurately as possible to determine the variables which contribute most to their outcomes. In particular, we care about the effect of the metaphor (or lack thereof) in each project. We first explore the data a little, and then begin a series of model comparisons for the dependent variables. Comparing models gives transparency to the contributions of each variable toward the target.

  1. Do projects that use metaphor generally receive better funding? How does using metaphor (and which type of metaphor family) influence campaign success, number of backers, and mean donation?

  2. Does higher metaphor productivity change the result?

  3. How can we characterize projects by the metaphors they employ?

  4. Within a metaphor family, are there canonical instantiations of a metaphor? (E.g. “fight battle”). Or even if productivity is low generally, are instantiations varied?

  5. How does metaphor vary with other interesting features, such as project description length, goal amount, project type/category, or cancer type?

Data Exploration

Projects per year

ggplot(dat) + geom_bar(aes(year), stat="count") + labs(title="Number of projects per year")

There are very few projects before 2013, and so for simplicity’s sake and to simplify the model just a tad, we remove 2012 and before.

dat = dat[dat$year >= 2013, ]

Projects per month

dat$month <- factor(dat$month)

dat %>%
  ggplot() + labs(title="Counts in Months") +
  geom_bar(aes(month)) +
  scale_x_discrete(labels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"))

Interestingly, there are a ton of January projects. This might have to do with scraping the site which lists projects chronologically.

Projects per day of the week

dat$day_of_week <- factor(dat$day_of_week)

dat %>%
  ggplot() + labs(title="Counts in Days of the Week") +
  geom_bar(aes(day_of_week)) +
  scale_x_discrete(labels = c("Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Sun"))

Fairly uniform, with slightly more projects being launched in the middle of the week (Wednesday) anda bit fewer being launched on the weekend (notably Saturday).

chisq.test(table(dat$day_of_week))
## 
##  Chi-squared test for given probabilities
## 
## data:  table(dat$day_of_week)
## X-squared = 34.983, df = 6, p-value = 4.343e-06

There is significant difference between the observed and the expected number of projects launched each day of the week.

Projects from the US

ggplot(dat) + geom_bar(aes(x=factor(from_US)), stat="count") + labs(x="From US", title="Number of projects from US")

Most projects are US based. Reduce the model complexity by restricting to US then.

dat <- dat[dat$from_US == 1, ]

Project goals, text lengths, and cancer types

We scale/z-score the continuous variables according to how we wish to interpret the coefficients of the model. From Andrew Gelman: “Standardizing puts things on an approximately common scale …. (Standarize for) comparing coefficients for different predictors within a model”. Binary and categorical variables are left as is.

dat$goal_sc <- scale(dat$goal)

dat %>%
  ggplot() + labs(title="Goal Amount Distribution") +
  geom_density(aes(goal))

dat$duration_float_sc = scale(dat$duration_float)

dat %>%
  ggplot() + labs(title="Duration Distribution") +
  geom_density(aes(duration_float))

dat$text_length_words_sc <- scale(dat$text_length_words)

dat %>%
  ggplot() + labs(title="Text Length Distribution") +
  geom_density(aes(text_length_words))

dat$photos_sc <- scale(dat$photos)

dat %>%
  ggplot() + labs(title="Photos Distribution") +
  geom_density(aes(photos))

dat$updates_sc <- scale(dat$updates)

dat %>%
  ggplot() + labs(title="Updates Distribution") +
  geom_density(aes(updates))

dat$shares_sc <- scale(dat$shares)

dat %>%
  ggplot() + labs(title="FB Shares Distribution") +
  geom_density(aes(shares))

dat$comments_sc <- scale(dat$comments)

dat %>%
  ggplot() + labs(title="Comments Distribution") +
  geom_density(aes(comments))

dat$friends_sc <- scale(dat$friends)

dat %>%
  ggplot() + labs(title="FB Friends Distribution") +
  geom_density(aes(friends))

dat %>%
  ggplot() + labs(title="Cancer Type Counts") +
  geom_bar(aes(x=cancer_type)) +
  theme(axis.text.x=element_text(angle = 60, hjust=1))

Project metaphors

We break down each project into how the metaphor families are distributed within the project text.

no_metaphor : Does the project lack metaphorical instances of keywords? any_metaphor : Does the project contain any metaphors at all? dom_journey : Is the journey metaphor family the dominant family? dom_battle : Is the battle metaphor family the dominant family? only_journey : Is the journey metaphor family the only family present? only_battle : Is the battle metaphor family the only family present? both_metaphor : Are both metaphor families present?

dat$no_metaphor = dat$battle_salience == 0.0 & dat$journey_salience == 0.0
dat$any_metaphor = as.logical(1 - dat$no_metaphor)
dat$dom_journey = dat$journey_salience > dat$battle_salience
dat$dom_battle = dat$battle_salience > dat$journey_salience
dat$only_journey = dat$journey_salience > 0 & dat$battle_salience == 0.0
dat$only_battle = dat$journey_salience == 0.0 & dat$battle_salience > 0
dat$both_metaphor = dat$battle_salience > 0.0 & dat$journey_salience > 0.0

metaphor_counts = data.frame(counts = colSums(dat[, c("no_metaphor", "any_metaphor", "dom_journey", "dom_battle", "only_journey", "only_battle", "both_metaphor")]))

ggplot() + labs(x="Metaphor Type", y="Count", title="Count in Metaphor Types") +
  geom_bar(stat="identity", aes(x=row.names(metaphor_counts), y=metaphor_counts$counts))

Good resources: https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html https://ase.tufts.edu/gsc/gradresources/guidetomixedmodelsinr/mixed%20model%20guide.html

Primary Analyses

We are interested in the effect that metaphor presence has on the funding status, the number of backers, and the mean donation of a project.

DV: status, backers, mean donation

IV: Goal amount, text length words, duration category, year, month, day of the week, photos, updates, comments, FB shares, FB friends, cancer type

Many of these covariates explained in:

Various sources were used to determine what should be a random effect and what should be fixed, and how to model interactions and correlations between variables, including:

Status

nrow(dat)
## [1] 5104

In total, we have 5104 IID samples to work with.

dat %>%
  ggplot() + labs(title="Goal Amount Distribution") + guides(color=guide_legend(title="Status")) +
  geom_density(aes(goal, color=fct_recode(factor(status), "Successful"="1", "Failed"="0"))) +
  theme_minimal()

dat %>%
  ggplot() + labs(title="Duration Distribution") + guides(color=guide_legend(title="Status")) +
  geom_density(aes(duration_float, color=fct_recode(factor(status), "Successful"="1", "Failed"="0"))) +
  theme_minimal()

dat %>%
  ggplot() + labs(title="Text Length Distribution") + guides(color=guide_legend(title="Status")) +
  geom_density(aes(text_length_words, color=fct_recode(factor(status), "Successful"="1", "Failed"="0"))) +
  theme_minimal()

dat %>%
  ggplot() + labs(title="Photos Distribution") + guides(color=guide_legend(title="Status")) +
  geom_density(aes(photos, color=fct_recode(factor(status), "Successful"="1", "Failed"="0"))) +
  theme_minimal()

dat %>%
  ggplot() + labs(title="Updates Distribution") + guides(color=guide_legend(title="Status")) +
  geom_density(aes(updates, color=fct_recode(factor(status), "Successful"="1", "Failed"="0"))) +
  theme_minimal()

dat %>%
  ggplot() + labs(title="FB Friends Distribution") + guides(color=guide_legend(title="Status")) +
  geom_density(aes(friends, color=fct_recode(factor(status), "Successful"="1", "Failed"="0"))) +
  theme_minimal()

dat %>%
  ggplot() + labs(title="Comments Distribution") + guides(color=guide_legend(title="Status")) +
  geom_density(aes(comments, color=fct_recode(factor(status), "Successful"="1", "Failed"="0"))) +
  theme_minimal()

dat %>%
  ggplot() + labs(title="FB Shares Distribution") + guides(color=guide_legend(title="Status")) +
  geom_density(aes(shares, color=fct_recode(factor(status), "Successful"="1", "Failed"="0"))) +
  theme_minimal()

dat %>%
  ggplot() + labs(title="Cancer Type Counts") + guides(fill=guide_legend(title="Status")) +
  geom_bar(aes(x=cancer_type, fill=fct_recode(factor(status), "Successful"="1", "Failed"="0")), position="dodge") +
  theme(axis.text.x=element_text(angle = 60, hjust=1))

Removed all random variabes except year because they didn’t help explain any variance in the data beyond what the residuals could capture. Year is a reasonable random effect as well (see Variance Components, Searle et al 2006)

Nesting and Chi2 differences: https://www.psychologie.uzh.ch/dam/jcr:ffffffff-b371-2797-0000-00000fda8f29/chisquare_diff_en.pdf

Model status

formula = status ~ shares_sc + friends_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + duration_float_sc + cancer_type + month + day_of_week + (1|year)

mod = glmer(formula, data = dat, family = "binomial")

formula = update(formula,  ~ . - day_of_week)
new.mod = glmer(formula, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## new.mod: status ~ shares_sc + friends_sc + updates_sc + photos_sc + goal_sc + 
## new.mod:     text_length_words_sc + duration_float_sc + cancer_type + 
## new.mod:     month + (1 | year)
## mod: status ~ shares_sc + friends_sc + updates_sc + photos_sc + goal_sc + 
## mod:     text_length_words_sc + duration_float_sc + cancer_type + 
## mod:     month + day_of_week + (1 | year)
##         Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod 39 3935.8 4190.8 -1928.9   3857.8                         
## mod     45 3946.3 4240.5 -1928.1   3856.3 1.5434      6     0.9566
mod = new.mod

formula = update(formula,  ~ . - friends_sc)
new.mod = glmer(formula, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + 
## new.mod:     duration_float_sc + cancer_type + month + (1 | year)
## mod: status ~ shares_sc + friends_sc + updates_sc + photos_sc + goal_sc + 
## mod:     text_length_words_sc + duration_float_sc + cancer_type + 
## mod:     month + (1 | year)
##         Df    AIC    BIC  logLik deviance Chisq Chi Df Pr(>Chisq)
## new.mod 38 3935.0 4183.5 -1929.5   3859.0                        
## mod     39 3935.8 4190.8 -1928.9   3857.8 1.193      1     0.2747
mod = new.mod

formula = update(formula,  ~ . - month)
new.mod = glmer(formula, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + 
## new.mod:     duration_float_sc + cancer_type + (1 | year)
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + 
## mod:     duration_float_sc + cancer_type + month + (1 | year)
##         Df  AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod 27 3921 4097.5 -1933.5     3867                         
## mod     38 3935 4183.5 -1929.5     3859 8.0063     11     0.7127
mod = new.mod

formula = update(formula,  ~ . - text_length_words_sc)
new.mod = glmer(formula, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year)
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + 
## mod:     duration_float_sc + cancer_type + (1 | year)
##         Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod 26 3919.7 4089.7 -1933.8   3867.7                         
## mod     27 3921.0 4097.5 -1933.5   3867.0 0.6731      1      0.412
mod = new.mod

The final base model before adding metaphor variables:

summary(mod)
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: 
## status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc +  
##     cancer_type + (1 | year)
##    Data: dat
## 
##      AIC      BIC   logLik deviance df.resid 
##   3919.7   4089.7  -1933.8   3867.7     5078 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -49.522  -0.452  -0.363  -0.211  16.481 
## 
## Random effects:
##  Groups Name        Variance Std.Dev.
##  year   (Intercept) 0.02763  0.1662  
## Number of obs: 5104, groups:  year, 7
## 
## Fixed effects:
##                                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  -2.1727131  0.1791372 -12.129  < 2e-16 ***
## shares_sc                     0.4524747  0.0594275   7.614 2.66e-14 ***
## updates_sc                   -0.3831075  0.0753946  -5.081 3.75e-07 ***
## photos_sc                     0.1792856  0.0484230   3.702 0.000213 ***
## goal_sc                      -1.3677017  0.1281598 -10.672  < 2e-16 ***
## duration_float_sc             0.1595864  0.0643154   2.481 0.013090 *  
## cancer_typebone cancer        0.0582564  0.2318236   0.251 0.801585    
## cancer_typebrain cancer       0.3665784  0.2411091   1.520 0.128414    
## cancer_typebreast cancer      0.1929430  0.1986376   0.971 0.331383    
## cancer_typecervical cancer   -0.9174039  0.6194165  -1.481 0.138586    
## cancer_typecolon cancer       0.3033976  0.4172696   0.727 0.467163    
## cancer_typeesophageal cancer  0.2710405  0.2612277   1.038 0.299473    
## cancer_typegeneral            0.3214842  0.1906555   1.686 0.091756 .  
## cancer_typekidney cancer      0.2685204  0.2203673   1.219 0.223029    
## cancer_typeleukemia           0.3380829  0.2518335   1.342 0.179439    
## cancer_typeliver cancer      -0.5975018  0.3795284  -1.574 0.115412    
## cancer_typelung cancer       -0.6857143  0.2515031  -2.726 0.006402 ** 
## cancer_typelymphoma           0.1675059  0.2066208   0.811 0.417542    
## cancer_typemelanoma           0.3074135  0.2611452   1.177 0.239126    
## cancer_typemixed              0.1267760  0.2031989   0.624 0.532693    
## cancer_typeneuroblastoma      0.6923740  0.3341111   2.072 0.038239 *  
## cancer_typepancreatic cancer -0.4688799  0.7641047  -0.614 0.539458    
## cancer_typeprostate cancer    0.0001585  0.5631835   0.000 0.999775    
## cancer_typeskin cancer       -0.0022886  0.2578445  -0.009 0.992918    
## cancer_typetesticular cancer  0.8165436  0.3235314   2.524 0.011608 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation matrix not shown by default, as p = 25 > 12.
## Use print(x, correlation=TRUE)  or
##     vcov(x)        if you need it

Add metaphors

Use nAQG=0 because nAQG=1 cannot converge in a reasonable number (10,000) of iterations

See https://stats.stackexchange.com/questions/77313/why-cant-i-match-glmer-family-binomial-output-with-manual-implementation-of-g and https://www.rdocumentation.org/packages/lme4/versions/1.1-19/topics/glmer

formula.temp = update(formula,  ~ . + no_metaphor)
new.mod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## mod:     cancer_type + (1 | year)
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + no_metaphor
##         Df    AIC    BIC  logLik deviance Chisq Chi Df Pr(>Chisq)
## mod     26 3919.7 4089.7 -1933.8   3867.7                        
## new.mod 27 3919.3 4095.8 -1932.7   3865.3 2.396      1     0.1216
fixef(new.mod)["no_metaphorTRUE"]
## no_metaphorTRUE 
##      -0.1311448
formula.temp = update(formula,  ~ . + any_metaphor)
new.mod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## mod:     cancer_type + (1 | year)
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + any_metaphor
##         Df    AIC    BIC  logLik deviance Chisq Chi Df Pr(>Chisq)
## mod     26 3919.7 4089.7 -1933.8   3867.7                        
## new.mod 27 3919.3 4095.8 -1932.7   3865.3 2.396      1     0.1216
fixef(new.mod)["any_metaphorTRUE"]
## any_metaphorTRUE 
##        0.1311739
formula.temp = update(formula,  ~ . + dom_journey)
new.mod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## mod:     cancer_type + (1 | year)
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + dom_journey
##         Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
## mod     26 3919.7 4089.7 -1933.8   3867.7                         
## new.mod 27 3921.6 4098.1 -1933.8   3867.6 0.1038      1     0.7473
fixef(new.mod)["dom_journeyTRUE"]
## dom_journeyTRUE 
##      0.05611276
formula.temp = update(formula,  ~ . + dom_journey + journey_prod)
new.mod.prod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat
## Models:
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + dom_journey
## new.mod.prod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod.prod:     cancer_type + (1 | year) + dom_journey + journey_prod
##              Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod      27 3921.6 4098.1 -1933.8   3867.6                         
## new.mod.prod 28 3922.6 4105.7 -1933.3   3866.6 0.9715      1     0.3243
fixef(new.mod.prod)["journey_prod"]
## journey_prod 
##   0.08265682
formula.temp = update(formula,  ~ . + dom_battle)
new.mod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## mod:     cancer_type + (1 | year)
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + dom_battle
##         Df    AIC    BIC  logLik deviance Chisq Chi Df Pr(>Chisq)
## mod     26 3919.7 4089.7 -1933.8   3867.7                        
## new.mod 27 3920.1 4096.7 -1933.1   3866.1 1.561      1     0.2115
fixef(new.mod)["dom_battleTRUE"]
## dom_battleTRUE 
##      0.1051109
formula.temp = update(formula,  ~ . + dom_battle + battle_prod)
new.mod.prod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat
## Models:
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + dom_battle
## new.mod.prod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod.prod:     cancer_type + (1 | year) + dom_battle + battle_prod
##              Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod      27 3920.1 4096.7 -1933.1   3866.1                         
## new.mod.prod 28 3921.1 4104.1 -1932.5   3865.1 1.0754      1     0.2997
fixef(new.mod.prod)["battle_prod"]
## battle_prod 
##  0.01977115
formula.temp = update(formula,  ~ . + only_battle)
new.mod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## mod:     cancer_type + (1 | year)
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + only_battle
##         Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
## mod     26 3919.7 4089.7 -1933.8   3867.7                         
## new.mod 27 3921.2 4097.7 -1933.6   3867.2 0.4938      1     0.4822
fixef(new.mod)["only_battleTRUE"]
## only_battleTRUE 
##       0.0596642
formula.temp = update(formula,  ~ . + only_battle + battle_prod)
new.mod.prod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat
## Models:
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + only_battle
## new.mod.prod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod.prod:     cancer_type + (1 | year) + only_battle + battle_prod
##              Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod      27 3921.2 4097.7 -1933.6   3867.2                         
## new.mod.prod 28 3921.2 4104.2 -1932.6   3865.2 2.0163      1     0.1556
fixef(new.mod.prod)["battle_prod"]
## battle_prod 
##  0.02442777
formula.temp = update(formula,  ~ . + only_journey)
new.mod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## mod:     cancer_type + (1 | year)
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + only_journey
##         Df    AIC    BIC  logLik deviance Chisq Chi Df Pr(>Chisq)
## mod     26 3919.7 4089.7 -1933.8   3867.7                        
## new.mod 27 3921.7 4098.2 -1933.8   3867.7 9e-04      1     0.9762
fixef(new.mod)["only_journeyTRUE"]
## only_journeyTRUE 
##      0.005725435
formula.temp = update(formula,  ~ . + only_journey + journey_prod)
new.mod.prod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat
## Models:
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + only_journey
## new.mod.prod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod.prod:     cancer_type + (1 | year) + only_journey + journey_prod
##              Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod      27 3921.7 4098.2 -1933.8   3867.7                         
## new.mod.prod 28 3922.5 4105.6 -1933.3   3866.5 1.1724      1     0.2789
fixef(new.mod.prod)["journey_prod"]
## journey_prod 
##   0.07944317
formula.temp = update(formula,  ~ . + scale(battle_salience))
new.mod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## mod:     cancer_type + (1 | year)
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + scale(battle_salience)
##         Df    AIC    BIC  logLik deviance Chisq Chi Df Pr(>Chisq)
## mod     26 3919.7 4089.7 -1933.8   3867.7                        
## new.mod 27 3920.7 4097.2 -1933.3   3866.7 0.997      1      0.318
fixef(new.mod)["scale(battle_salience)"]
## scale(battle_salience) 
##             0.04011454
formula.temp = update(formula,  ~ . + scale(journey_salience))
new.mod = glmer(formula.temp, data = dat, family = "binomial")
anova(new.mod, mod, test="Chisq")
## Data: dat
## Models:
## mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## mod:     cancer_type + (1 | year)
## new.mod: status ~ shares_sc + updates_sc + photos_sc + goal_sc + duration_float_sc + 
## new.mod:     cancer_type + (1 | year) + scale(journey_salience)
##         Df    AIC    BIC  logLik deviance Chisq Chi Df Pr(>Chisq)  
## mod     26 3919.7 4089.7 -1933.8   3867.7                          
## new.mod 27 3918.8 4095.3 -1932.4   3864.8 2.897      1    0.08874 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)["scale(journey_salience)"]
## scale(journey_salience) 
##              0.06536472

Number of Backers

library(glmmTMB)
nrow(dat[dat$backers > 1200, ])
## [1] 25
ggplot() + labs(x="Number of Backers", title="Number of Backers Density") +
  geom_density(aes(dat$backers[dat$backers < 1200]))

We limit to 1200 because removing the outliers leaves us with a nicely shaped distribution.

dat.b <- dat[dat$backers < 1200, ]

Runa quick data dispersion test (see Rice 1995):

s = na.omit(dat.b)
pchisq(2 * sum(dat.b$backers * log(dat.b$backers / mean(dat.b$backers))), length(dat.b$backers) - 1, lower.tail = F)
## [1] 0

H0: The data are fit well by a Poisson Distribution H1: Poisson fails to fit the data well

The Poisson distribution obviously does not fit the data well since p approx 0. Let’s use a NegBin instead, which can account for differences in the mean and variance.

dat.b %>%
  ggplot(aes(goal, backers)) + labs(title="Goal Amount Distribution") +
  geom_point(aes(alpha=0.1)) +
  theme_minimal()

dat.b %>%
  ggplot(aes(duration_float, backers)) + labs(title="Duration Distribution") +
  geom_point(aes(alpha=0.1)) +
  theme_minimal()

dat.b %>%
  ggplot(aes(text_length_words, backers)) + labs(title="Text Length Distribution") +
  geom_point(aes(alpha=0.1)) +
  theme_minimal()

dat.b %>%
  ggplot(aes(photos, backers)) + labs(title="Photos Distribution") +
  geom_point(aes(alpha=0.1)) +
  theme_minimal()

dat.b %>%
  ggplot(aes(updates, backers)) + labs(title="Updates Distribution") +
  geom_point(aes(alpha=0.1)) + 
  theme_minimal()

dat.b %>%
  ggplot(aes(friends, backers)) + labs(title="FB Friends Distribution") +
  geom_point(aes(alpha=0.1)) + 
  theme_minimal()

dat.b %>%
  ggplot(aes(shares, backers)) + labs(title="FB Shares Distribution") +
  geom_point(aes(alpha=0.1)) + 
  theme_minimal()

dat.b %>%
  ggplot(aes(cancer_type, backers)) + labs(title="Cancer Types") +
  geom_boxplot() +
  theme_minimal() +
  theme(axis.text.x=element_text(angle = 60, hjust=1))

Model backers

formula = backers ~ shares_sc + friends_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + duration_float_sc + cancer_type + month + day_of_week + (1|year)

mod = glmmTMB(formula, data = dat.b, family = "nbinom2")

formula = update(formula,  ~ . - day_of_week)
new.mod = glmmTMB(formula, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## new.mod: backers ~ shares_sc + friends_sc + updates_sc + photos_sc + goal_sc + , zi=~0, disp=~1
## new.mod:     text_length_words_sc + duration_float_sc + cancer_type + , zi=~0, disp=~1
## new.mod:     month + (1 | year), zi=~0, disp=~1
## mod: backers ~ shares_sc + friends_sc + updates_sc + photos_sc + goal_sc + , zi=~0, disp=~1
## mod:     text_length_words_sc + duration_float_sc + cancer_type + , zi=~0, disp=~1
## mod:     month + day_of_week + (1 | year), zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod 40 54011 54273 -26966    53931                         
## mod     46 54020 54320 -26964    53928 3.6141      6     0.7287
mod = new.mod

formula = update(formula,  ~ . - friends_sc)
new.mod = glmmTMB(formula, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year), zi=~0, disp=~1
## mod: backers ~ shares_sc + friends_sc + updates_sc + photos_sc + goal_sc + , zi=~0, disp=~1
## mod:     text_length_words_sc + duration_float_sc + cancer_type + , zi=~0, disp=~1
## mod:     month + (1 | year), zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod 39 54010 54265 -26966    53932                         
## mod     40 54011 54273 -26966    53931 0.8242      1      0.364
mod = new.mod
summary(mod)
##  Family: nbinom2  ( log )
## Formula:          
## backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc +  
##     duration_float_sc + cancer_type + month + (1 | year)
## Data: dat.b
## 
##      AIC      BIC   logLik deviance df.resid 
##  54010.1  54264.8 -26966.0  53932.1     5040 
## 
## Random effects:
## 
## Conditional model:
##  Groups Name        Variance Std.Dev.
##  year   (Intercept) 0.004179 0.06464 
## Number of obs: 5079, groups:  year, 7
## 
## Overdispersion parameter for nbinom2 family (): 1.67 
## 
## Conditional model:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                   4.261461   0.059680   71.41  < 2e-16 ***
## shares_sc                     0.774464   0.025946   29.85  < 2e-16 ***
## updates_sc                   -0.057873   0.013568   -4.27 1.99e-05 ***
## photos_sc                     0.123559   0.014915    8.28  < 2e-16 ***
## goal_sc                       0.319677   0.018068   17.69  < 2e-16 ***
## text_length_words_sc          0.086437   0.012738    6.79 1.15e-11 ***
## duration_float_sc             0.058702   0.023195    2.53 0.011381 *  
## cancer_typebone cancer        0.286356   0.060564    4.73 2.27e-06 ***
## cancer_typebrain cancer       0.319529   0.065559    4.87 1.09e-06 ***
## cancer_typebreast cancer      0.417008   0.053071    7.86 3.92e-15 ***
## cancer_typecervical cancer   -0.122597   0.119826   -1.02 0.306250    
## cancer_typecolon cancer       0.224359   0.114368    1.96 0.049795 *  
## cancer_typeesophageal cancer  0.356066   0.071040    5.01 5.38e-07 ***
## cancer_typegeneral            0.329681   0.051315    6.42 1.32e-10 ***
## cancer_typekidney cancer      0.244011   0.059710    4.09 4.38e-05 ***
## cancer_typeleukemia           0.557847   0.068770    8.11 4.99e-16 ***
## cancer_typeliver cancer      -0.278111   0.081504   -3.41 0.000644 ***
## cancer_typelung cancer       -0.263824   0.056699   -4.65 3.27e-06 ***
## cancer_typelymphoma           0.370292   0.055296    6.70 2.13e-11 ***
## cancer_typemelanoma          -0.020420   0.074660   -0.27 0.784468    
## cancer_typemixed              0.095720   0.054039    1.77 0.076506 .  
## cancer_typeneuroblastoma      0.466555   0.094777    4.92 8.54e-07 ***
## cancer_typepancreatic cancer  0.468659   0.144838    3.24 0.001213 ** 
## cancer_typeprostate cancer    0.086021   0.133827    0.64 0.520367    
## cancer_typeskin cancer       -0.048203   0.068193   -0.71 0.479651    
## cancer_typetesticular cancer  0.547275   0.103723    5.28 1.32e-07 ***
## month2                       -0.032726   0.047491   -0.69 0.490763    
## month3                        0.008621   0.057833    0.15 0.881500    
## month4                       -0.081410   0.059025   -1.38 0.167818    
## month5                       -0.141690   0.055709   -2.54 0.010978 *  
## month6                       -0.106167   0.056335   -1.88 0.059489 .  
## month7                       -0.107387   0.054619   -1.97 0.049286 *  
## month8                       -0.003657   0.054440   -0.07 0.946439    
## month9                       -0.077024   0.053898   -1.43 0.152982    
## month10                      -0.094441   0.052974   -1.78 0.074624 .  
## month11                      -0.054860   0.053359   -1.03 0.303887    
## month12                       0.021928   0.053724    0.41 0.683157    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Add metaphors

formula.temp = update(formula,  ~ . + no_metaphor)
new.mod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## mod:     duration_float_sc + cancer_type + month + (1 | year), zi=~0, disp=~1
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + no_metaphor, zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)    
## mod     39 54010 54265 -26966    53932                             
## new.mod 40 53976 54237 -26948    53896 36.344      1  1.654e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)$cond["no_metaphorTRUE"]
## no_metaphorTRUE 
##      -0.1386814
formula.temp = update(formula,  ~ . + any_metaphor)
new.mod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## mod:     duration_float_sc + cancer_type + month + (1 | year), zi=~0, disp=~1
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + any_metaphor, zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)    
## mod     39 54010 54265 -26966    53932                             
## new.mod 40 53976 54237 -26948    53896 36.344      1  1.654e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)$cond["any_metaphorTRUE"]
## any_metaphorTRUE 
##         0.138681
formula.temp = update(formula,  ~ . + dom_journey)
new.mod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## mod:     duration_float_sc + cancer_type + month + (1 | year), zi=~0, disp=~1
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + dom_journey, zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)  
## mod     39 54010 54265 -26966    53932                           
## new.mod 40 54008 54269 -26964    53928 4.1864      1    0.04075 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)$cond["dom_journeyTRUE"]
## dom_journeyTRUE 
##      0.09338186
formula.temp = update(formula,  ~ . + dom_journey + journey_prod)
new.mod.prod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat.b
## Models:
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + dom_journey, zi=~0, disp=~1
## new.mod.prod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod.prod:     duration_float_sc + cancer_type + month + (1 | year) + dom_journey + , zi=~0, disp=~1
## new.mod.prod:     journey_prod, zi=~0, disp=~1
##              Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod      40 54008 54269 -26964    53928                         
## new.mod.prod 41 54010 54278 -26964    53928 0.0129      1     0.9094
fixef(new.mod.prod)$cond["journey_prod"]
## journey_prod 
##  0.002608997
formula.temp = update(formula,  ~ . + dom_battle)
new.mod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## mod:     duration_float_sc + cancer_type + month + (1 | year), zi=~0, disp=~1
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + dom_battle, zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance Chisq Chi Df Pr(>Chisq)    
## mod     39 54010 54265 -26966    53932                            
## new.mod 40 53992 54254 -26956    53912 19.61      1  9.496e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)$cond["dom_battleTRUE"]
## dom_battleTRUE 
##     0.09952134
formula.temp = update(formula,  ~ . + dom_battle + battle_prod)
new.mod.prod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat.b
## Models:
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + dom_battle, zi=~0, disp=~1
## new.mod.prod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod.prod:     duration_float_sc + cancer_type + month + (1 | year) + dom_battle + , zi=~0, disp=~1
## new.mod.prod:     battle_prod, zi=~0, disp=~1
##              Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)  
## new.mod      40 53992 54254 -26956    53912                           
## new.mod.prod 41 53989 54257 -26954    53907 5.0724      1    0.02431 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod.prod)$cond["battle_prod"]
## battle_prod 
##   0.0122179
formula.temp = update(formula,  ~ . + only_battle)
new.mod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## mod:     duration_float_sc + cancer_type + month + (1 | year), zi=~0, disp=~1
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + only_battle, zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)    
## mod     39 54010 54265 -26966    53932                             
## new.mod 40 53993 54254 -26956    53913 19.433      1  1.042e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)$cond["only_battleTRUE"]
## only_battleTRUE 
##      0.09929021
formula.temp = update(formula,  ~ . + only_battle + battle_prod)
new.mod.prod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat.b
## Models:
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + only_battle, zi=~0, disp=~1
## new.mod.prod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod.prod:     duration_float_sc + cancer_type + month + (1 | year) + only_battle + , zi=~0, disp=~1
## new.mod.prod:     battle_prod, zi=~0, disp=~1
##              Df   AIC   BIC logLik deviance Chisq Chi Df Pr(>Chisq)   
## new.mod      40 53993 54254 -26956    53913                           
## new.mod.prod 41 53987 54255 -26953    53905 7.121      1   0.007618 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod.prod)$cond["battle_prod"]
## battle_prod 
##  0.01302743
formula.temp = update(formula,  ~ . + only_journey)
new.mod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## mod:     duration_float_sc + cancer_type + month + (1 | year), zi=~0, disp=~1
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + only_journey, zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## mod     39 54010 54265 -26966    53932                         
## new.mod 40 54011 54272 -26965    53931 1.2492      1     0.2637
fixef(new.mod)$cond["only_journeyTRUE"]
## only_journeyTRUE 
##       0.05633693
formula.temp = update(formula,  ~ . + only_journey + journey_prod)
new.mod.prod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat.b
## Models:
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + only_journey, zi=~0, disp=~1
## new.mod.prod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod.prod:     duration_float_sc + cancer_type + month + (1 | year) + only_journey + , zi=~0, disp=~1
## new.mod.prod:     journey_prod, zi=~0, disp=~1
##              Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod      40 54011 54272 -26965    53931                         
## new.mod.prod 41 54012 54280 -26965    53930 0.9795      1     0.3223
fixef(new.mod.prod)$cond["journey_prod"]
## journey_prod 
##    0.0197251
formula.temp = update(formula,  ~ . + scale(battle_salience))
new.mod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## mod:     duration_float_sc + cancer_type + month + (1 | year), zi=~0, disp=~1
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + scale(battle_salience), zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)    
## mod     39 54010 54265 -26966    53932                             
## new.mod 40 53994 54255 -26957    53914 17.983      1  2.229e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)$cond["scale(battle_salience)"]
## scale(battle_salience) 
##              0.0482378
formula.temp = update(formula,  ~ . + scale(journey_salience))
new.mod = glmmTMB(formula.temp, data = dat.b, family = "nbinom2")
anova(new.mod, mod, test="Chisq")
## Data: dat.b
## Models:
## mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## mod:     duration_float_sc + cancer_type + month + (1 | year), zi=~0, disp=~1
## new.mod: backers ~ shares_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + , zi=~0, disp=~1
## new.mod:     duration_float_sc + cancer_type + month + (1 | year) + scale(journey_salience), zi=~0, disp=~1
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)   
## mod     39 54010 54265 -26966    53932                            
## new.mod 40 54004 54265 -26962    53924 7.9296      1   0.004863 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)$cond["scale(journey_salience)"]
## scale(journey_salience) 
##                 0.03118

On average, not having metaphors present lowers the expected value of log(backers) by 17.3%. When battle metaphors are dominant, the expected value of log(backers) increases by 13.1%. When battle metaphors are dominant, then an additional unit of battle productivity increases the expected value of log(backers) by 1.1%. When there are only battle metaphors present, we see an increase of 12.9%. Unit increases in battle salience lead to 7.2% increases in log(backers) expected value, and similarly, a unit increase in journey salience leads to a 3.8% increase.

Mean Donation

dat %>%
  ggplot() + labs(title="Mean Donation Density") +
  geom_density(aes(mean_donation+1))

dat.m = dat[dat$mean_donation < 500, ]

dat.m %>%
  ggplot() + geom_qq(aes(sample=mean_donation+1), distribution = qexp) + geom_qq_line(aes(sample=mean_donation+1), distribution = qexp)

dat.m %>%
  ggplot(aes(goal, mean_donation)) + labs(title="Goal Amount Distribution") +
  geom_point(aes(alpha=0.1)) +
  theme_minimal()

dat.m %>%
  ggplot(aes(duration_float, mean_donation)) + labs(title="Duration Distribution") +
  geom_point(aes(alpha=0.1)) +
  theme_minimal()

dat.m %>%
  ggplot(aes(text_length_words, mean_donation)) + labs(title="Text Length Distribution") +
  geom_point(aes(alpha=0.1)) +
  theme_minimal()

dat.m %>%
  ggplot(aes(photos, mean_donation)) + labs(title="Photos Distribution") +
  geom_point(aes(alpha=0.1)) +
  theme_minimal()

dat.m %>%
  ggplot(aes(updates, mean_donation)) + labs(title="Updates Distribution") +
  geom_point(aes(alpha=0.1)) + 
  theme_minimal()

dat.m %>%
  ggplot(aes(friends, mean_donation)) + labs(title="FB Friends Distribution") +
  geom_point(aes(alpha=0.1)) + 
  theme_minimal()

dat.m %>%
  ggplot(aes(shares, mean_donation)) + labs(title="FB Shares Distribution") +
  geom_point(aes(alpha=0.1)) + 
  theme_minimal()

dat.m %>%
  ggplot(aes(cancer_type, mean_donation)) + labs(title="Cancer Types") +
  geom_boxplot() +
  theme_minimal() +
  theme(axis.text.x=element_text(angle = 60, hjust=1))

The data fit an exponential fairly well, so we model with Gamma and a log link (see above answer for reason).

Model mean donation

formula = mean_donation+1 ~ shares_sc + friends_sc + updates_sc + photos_sc + goal_sc + text_length_words_sc + duration_float_sc + cancer_type + month + day_of_week + (1|year)

mod = glmer(formula, data = dat.m, family = Gamma(link = "log"))
## Warning in (function (fn, par, lower = rep.int(-Inf, n), upper =
## rep.int(Inf, : failure to converge in 10000 evaluations
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.0401821
## (tol = 0.001, component 1)
formula = update(formula,  ~ . - month)
new.mod = glmer(formula, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00368955
## (tol = 0.001, component 1)
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + photos_sc + 
## new.mod:     goal_sc + text_length_words_sc + duration_float_sc + cancer_type + 
## new.mod:     day_of_week + (1 | year)
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + photos_sc + 
## mod:     goal_sc + text_length_words_sc + duration_float_sc + cancer_type + 
## mod:     month + day_of_week + (1 | year)
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)  
## new.mod 35 51642 51870 -25786    51572                           
## mod     46 51644 51945 -25776    51552 19.537     11    0.05212 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mod = new.mod

formula = update(formula,  ~ . - day_of_week)
new.mod = glmer(formula, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.0011806
## (tol = 0.001, component 1)
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + photos_sc + 
## new.mod:     goal_sc + text_length_words_sc + duration_float_sc + cancer_type + 
## new.mod:     (1 | year)
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + photos_sc + 
## mod:     goal_sc + text_length_words_sc + duration_float_sc + cancer_type + 
## mod:     day_of_week + (1 | year)
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod 29 51635 51825 -25789    51577                         
## mod     35 51642 51870 -25786    51572 5.5962      6     0.4699
mod = new.mod

formula = update(formula,  ~ . - duration_float_sc)
new.mod = glmer(formula, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00154383
## (tol = 0.001, component 1)
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + photos_sc + 
## new.mod:     goal_sc + text_length_words_sc + cancer_type + (1 | year)
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + photos_sc + 
## mod:     goal_sc + text_length_words_sc + duration_float_sc + cancer_type + 
## mod:     (1 | year)
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod 28 51633 51816 -25789    51577                         
## mod     29 51635 51825 -25789    51577 0.1431      1     0.7052
mod = new.mod

formula = update(formula,  ~ . - photos_sc)
new.mod = glmer(formula, data = dat.m, family = Gamma(link = "log"))
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year)
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + photos_sc + 
## mod:     goal_sc + text_length_words_sc + cancer_type + (1 | year)
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod 27 51634 51810 -25790    51580                         
## mod     28 51633 51816 -25789    51577 2.5676      1     0.1091
mod = new.mod
summary(mod)
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: Gamma  ( log )
## Formula: 
## mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc +  
##     text_length_words_sc + cancer_type + (1 | year)
##    Data: dat.m
## 
##      AIC      BIC   logLik deviance df.resid 
##  51633.9  51810.4 -25790.0  51579.9     5066 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -1.9429 -0.6416 -0.1771  0.3949  8.2317 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  year     (Intercept) 0.001311 0.03621 
##  Residual             0.230176 0.47977 
## Number of obs: 5093, groups:  year, 7
## 
## Fixed effects:
##                               Estimate Std. Error t value Pr(>|z|)    
## (Intercept)                   4.568679   0.033190 137.654  < 2e-16 ***
## shares_sc                    -0.053929   0.006454  -8.356  < 2e-16 ***
## friends_sc                   -0.043754   0.006188  -7.071 1.54e-12 ***
## updates_sc                    0.024212   0.007352   3.293 0.000990 ***
## goal_sc                       0.116939   0.008024  14.573  < 2e-16 ***
## text_length_words_sc          0.024892   0.006598   3.773 0.000162 ***
## cancer_typebone cancer       -0.132681   0.033991  -3.903 9.48e-05 ***
## cancer_typebrain cancer      -0.048263   0.036927  -1.307 0.191219    
## cancer_typebreast cancer     -0.055519   0.029824  -1.862 0.062668 .  
## cancer_typecervical cancer   -0.140869   0.067382  -2.091 0.036562 *  
## cancer_typecolon cancer      -0.113699   0.064595  -1.760 0.078377 .  
## cancer_typeesophageal cancer  0.005876   0.040087   0.147 0.883465    
## cancer_typegeneral           -0.075451   0.028570  -2.641 0.008268 ** 
## cancer_typekidney cancer     -0.048179   0.033602  -1.434 0.151626    
## cancer_typeleukemia          -0.044836   0.038446  -1.166 0.243534    
## cancer_typeliver cancer      -0.039556   0.045593  -0.868 0.385624    
## cancer_typelung cancer        0.036256   0.031836   1.139 0.254765    
## cancer_typelymphoma          -0.101800   0.031161  -3.267 0.001087 ** 
## cancer_typemelanoma           0.026115   0.042116   0.620 0.535208    
## cancer_typemixed             -0.020008   0.030420  -0.658 0.510714    
## cancer_typeneuroblastoma     -0.060799   0.053466  -1.137 0.255478    
## cancer_typepancreatic cancer -0.029183   0.079991  -0.365 0.715241    
## cancer_typeprostate cancer    0.264944   0.075607   3.504 0.000458 ***
## cancer_typeskin cancer       -0.056814   0.038381  -1.480 0.138806    
## cancer_typetesticular cancer -0.195204   0.058166  -3.356 0.000791 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation matrix not shown by default, as p = 25 > 12.
## Use print(x, correlation=TRUE)  or
##     vcov(x)        if you need it

Add metaphors

formula.temp = update(formula,  ~ . + no_metaphor)
new.mod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## mod:     text_length_words_sc + cancer_type + (1 | year)
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + no_metaphor
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)    
## mod     27 51634 51810 -25790    51580                             
## new.mod 28 51602 51785 -25773    51546 33.777      1  6.181e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)["no_metaphorTRUE"]
## no_metaphorTRUE 
##     -0.07536495
formula.temp = update(formula,  ~ . + any_metaphor)
new.mod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00136245
## (tol = 0.001, component 1)
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## mod:     text_length_words_sc + cancer_type + (1 | year)
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + any_metaphor
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)    
## mod     27 51634 51810 -25790    51580                             
## new.mod 28 51602 51785 -25773    51546 33.777      1  6.181e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)["any_metaphorTRUE"]
## any_metaphorTRUE 
##       0.07536008
formula.temp = update(formula,  ~ . + dom_journey)
new.mod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## mod:     text_length_words_sc + cancer_type + (1 | year)
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + dom_journey
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)  
## mod     27 51634 51810 -25790    51580                           
## new.mod 28 51630 51813 -25787    51574 6.0642      1     0.0138 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)["dom_journeyTRUE"]
## dom_journeyTRUE 
##        0.064099
formula.temp = update(formula,  ~ . + dom_journey + journey_prod)
new.mod.prod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.002086
## (tol = 0.001, component 1)
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat.m
## Models:
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + dom_journey
## new.mod.prod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod.prod:     text_length_words_sc + cancer_type + (1 | year) + dom_journey + 
## new.mod.prod:     journey_prod
##              Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod      28 51630 51813 -25787    51574                         
## new.mod.prod 29 51630 51819 -25786    51572 2.2676      1     0.1321
fixef(new.mod.prod)["journey_prod"]
## journey_prod 
##    0.0192749
formula.temp = update(formula,  ~ . + dom_battle)
new.mod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00129119
## (tol = 0.001, component 1)
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## mod:     text_length_words_sc + cancer_type + (1 | year)
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + dom_battle
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)    
## mod     27 51634 51810 -25790    51580                             
## new.mod 28 51615 51798 -25780    51559 20.517      1  5.911e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)["dom_battleTRUE"]
## dom_battleTRUE 
##     0.05753821
formula.temp = update(formula,  ~ . + dom_battle + battle_prod)
new.mod.prod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00340986
## (tol = 0.001, component 1)
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat.m
## Models:
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + dom_battle
## new.mod.prod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod.prod:     text_length_words_sc + cancer_type + (1 | year) + dom_battle + 
## new.mod.prod:     battle_prod
##              Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)
## new.mod      28 51615 51798 -25780    51559                         
## new.mod.prod 29 51617 51807 -25780    51559 0.2471      1     0.6191
fixef(new.mod.prod)["battle_prod"]
##  battle_prod 
## -0.001496217
formula.temp = update(formula,  ~ . + only_battle)
new.mod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## mod:     text_length_words_sc + cancer_type + (1 | year)
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + only_battle
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)    
## mod     27 51634 51810 -25790    51580                             
## new.mod 28 51618 51801 -25781    51562 18.032      1  2.172e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)["only_battleTRUE"]
## only_battleTRUE 
##      0.05396354
formula.temp = update(formula,  ~ . + only_battle + battle_prod)
new.mod.prod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat.m
## Models:
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + only_battle
## new.mod.prod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod.prod:     text_length_words_sc + cancer_type + (1 | year) + only_battle + 
## new.mod.prod:     battle_prod
##              Df   AIC   BIC logLik deviance Chisq Chi Df Pr(>Chisq)
## new.mod      28 51618 51801 -25781    51562                        
## new.mod.prod 29 51620 51809 -25781    51562 0.125      1     0.7237
fixef(new.mod.prod)["battle_prod"]
##  battle_prod 
## 0.0009656971
formula.temp = update(formula,  ~ . + only_journey)
new.mod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00117217
## (tol = 0.001, component 1)
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## mod:     text_length_words_sc + cancer_type + (1 | year)
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + only_journey
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)  
## mod     27 51634 51810 -25790    51580                           
## new.mod 28 51631 51814 -25787    51575 5.1019      1     0.0239 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)["only_journeyTRUE"]
## only_journeyTRUE 
##       0.06446283
formula.temp = update(formula,  ~ . + only_journey + journey_prod)
new.mod.prod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00149005
## (tol = 0.001, component 1)
anova(new.mod.prod, new.mod, test="Chisq")
## Data: dat.m
## Models:
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + only_journey
## new.mod.prod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod.prod:     text_length_words_sc + cancer_type + (1 | year) + only_journey + 
## new.mod.prod:     journey_prod
##              Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)  
## new.mod      28 51631 51814 -25787    51575                           
## new.mod.prod 29 51629 51819 -25786    51571 3.5768      1    0.05859 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod.prod)["journey_prod"]
## journey_prod 
##     0.021044
formula.temp = update(formula,  ~ . + scale(battle_salience))
new.mod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00102776
## (tol = 0.001, component 1)
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## mod:     text_length_words_sc + cancer_type + (1 | year)
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + scale(battle_salience)
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)  
## mod     27 51634 51810 -25790    51580                           
## new.mod 28 51630 51813 -25787    51574 6.1446      1    0.01318 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)["scale(battle_salience)"]
## scale(battle_salience) 
##             0.01594413
formula.temp = update(formula,  ~ . + scale(journey_salience))
new.mod = glmer(formula.temp, data = dat.m, family = Gamma(link = "log"))
anova(new.mod, mod, test="Chisq")
## Data: dat.m
## Models:
## mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## mod:     text_length_words_sc + cancer_type + (1 | year)
## new.mod: mean_donation + 1 ~ shares_sc + friends_sc + updates_sc + goal_sc + 
## new.mod:     text_length_words_sc + cancer_type + (1 | year) + scale(journey_salience)
##         Df   AIC   BIC logLik deviance  Chisq Chi Df Pr(>Chisq)   
## mod     27 51634 51810 -25790    51580                            
## new.mod 28 51626 51809 -25785    51570 10.039      1   0.001532 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
fixef(new.mod)["scale(journey_salience)"]
## scale(journey_salience) 
##              0.01933253